<?php

function index() {
    global $contenido;

    $dbc = conectarBD();
    $resultado = pg_query($dbc, "SELECT * FROM pregunta;");
    if (!$resultado) {

        $contenido["error"] = "No se ha podido contactar a la base de datos.";
    } else {
        $preguntas = pg_fetch_all($resultado);
        if (!$preguntas)
            $contenido["info"] = "No hay preguntas en la base de datos.";
        else
            $contenido["preguntas"] = $preguntas;
    }
    pg_close($dbc);
}

function view() {
    global $contenido;

    $id_pregunta = @$_GET["id_pregunta"];
    if (!$id_pregunta) {
        $contenido["error"] = "Debe especificar el identificador de la pregunta.";
    } else {
        $dbc = conectarBD();
        pg_prepare($dbc, "delete_query", "SELECT * FROM pregunta WHERE id_pregunta = $1;");
        $resultado = pg_execute($dbc, "delete_query", array($id_pregunta));
        $resultadoArray = pg_fetch_all($resultado);
        pg_close($dbc);
        if (!$resultado || !$resultadoArray) {
            $contenido["error"] = "No se ha encontrado un pregunta con el identificador indicado.";
        } else {
            $contenido["pregunta"] = $resultadoArray[0];
        }
    }
}

function create() {
    Response::$view = "form";
}

function edit() {
    global $contenido;
    view();
    Response::$view = "form";
}

function responder() {
    global $contenido;
    view();
    Response::$view = "RespuestaForm";
}

function persist() {
    global $contenido;
    $_GET["id_pregunta"] = $_POST["id_pregunta"];
    view();

    $dbc = conectarBD();
    if (!array_key_exists("pregunta", $contenido)) {
        $consulta = "INSERT INTO pregunta VALUES(".$_POST["id_pregunta"].",".$_POST["enunciado"].",".$_POST["interes"].");";
        pg_prepare($dbc, "persist_query", "INSERT INTO pregunta VALUES($1,$2,$3)");
    } else {
        $consulta = "UPDATE pregunta SET enunciado=".$_POST["enunciado"].",interes=".$_POST["interes"]." WHERE id_pregunta=".$_POST["id_pregunta"].";";
        pg_prepare($dbc, "persist_query", "UPDATE pregunta SET enunciado=$2,interes=$3 WHERE id_pregunta=$1");
    }
    
    $resultado = pg_execute($dbc, "persist_query", $_POST);
    pg_close($dbc);
    if (!$resultado || $resultado == 0) {
        $contenido["error"] = "No se ha podido guardar la pregunta.";
    } else {
        $contenido = array();
        $contenido["exito"] = "Los datos de la pregunta se han guardado exitosamente.";
        $log = guardarEnLog($consulta);
    }

    index();
    Response::$view = "index";
}

function persist_respuesta() {
    global $contenido;
    $_GET["id_pregunta"] = $_POST["id_pregunta"];
    view();

    $dbc = conectarBD();
    //$consulta = "INSERT INTO cliente_pregunta VALUES($1,$2,$3,$4 );";
    pg_prepare($dbc, "persist_query", "INSERT INTO cliente_pregunta VALUES($1,$2,$3,$4 )");

    $resultado = pg_execute($dbc, "persist_query", $_POST);
    pg_close($dbc);
    if (!$resultado || $resultado == 0) {
        $contenido["error"] = "No se ha podido guardar la pregunta.";
    } else {
        $contenido = array();
        $contenido["exito"] = "Los datos de la pregunta se han guardado exitosamente.";
        //$log = guardarEnLog($consulta);
    }

    index();
    Response::$view = "index";
}

function delete() {
    global $contenido;

    $id_pregunta = @$_POST["id_pregunta"];
    if (!$id_pregunta) {
        $contenido["error"] = "Debe especificar el identificador de la pregunta.";
    } else {
        $dbc = conectarBD();
        $consulta = "DELETE FROM pregunta WHERE id_pregunta = ".$id_pregunta.";";
        pg_prepare($dbc, "delete_query", "DELETE FROM pregunta WHERE id_pregunta = $1");
        $resultado = pg_execute($dbc, "delete_query", array($id_pregunta));
        pg_close($dbc);
        if (!$resultado || pg_affected_rows($resultado) == 0) {
            $contenido["error"] = "No se ha encontrado una pregunta con el identificador indicado.";
        } else {
            $contenido["alerta"] = "Se ha eliminado correctamente la pregunta especificada.";
            $log = guardarEnLog($consulta);
        }
    }

    index();
    Response::$view = "index";
}

?>
